#ifndef _SDK_CURTAIN_MODEL_H_
#define _SDK_CURTAIN_MODEL_H_

#include "sdk_common.h"

typedef struct{
    uint8_t motor;//机状态：1打开，2关闭，3停止
    uint8_t direction;//方向设置：1正向，2反向，3换向
    uint8_t drag;//手拉启动设置：0无手拉启动，1有手拉启动

    uint8_t motorPosition;//电机执行百分比命令， 0%~100%，0xFF上报电机找不到百分比
    uint8_t angleDirection;//0：向右，1：停止， 2：向左转
    uint8_t anglePosition;//角度百分比 0~100%
}O_CURTAIN_STATUS,*P_CURTAIN_STATUS;


#define SDK_CURTAIN_STATUS_ATTRID   0x1007
#define SDK_CURTAIN_CTL_MOTOR_ATTRID 0x1040
#define SDK_CURTAIN_CTL_MOTOR_POSITIO_ABS_ATTRID 0x1041
#define SDK_CURTAIN_SET_DIRECTION_ATTRID 0x1043
#define SDK_CURTAIN_SET_HANDDRAG_ATTRID 0x1044
#define SDK_CURTAIN_CTL_MOTOR_POSITION_REL_ATTRID 0x1045
#define SDK_CURTAIN_SET_DIMMING_LIMIT_ATTRID 0x1046
#define SDK_CURTAIN_CTL_ANGLE_PERCENTAGE_ATTRID 0x1047
#define SDK_CURTAIN_CTL_ANGLE_DIRECTION_ATTRID  0x1048

typedef enum{
    enum_curtain_ctl_motor=0,
    enum_curtain_ctl_motor_position_abs=1,
    enum_curtain_set_direction=2,
    enum_curtain_set_handdrag=3,
    enum_curtain_ctl_motor_position_rel=4,
    enum_curtain_set_dimming_limit=5,
    enum_curtain_ctl_angle_percentage=6,
    enum_curtain_ctl_angle_direction=7
}ENUM_CURTAIN_CTL_TYPE;


typedef struct{
    uint8_t incOrdec;
    uint8_t percentage;
}O_CURTAIN_MORTOR_POSITION,*P_CURTAIN_MORTOR_POSITION;


typedef union curtain_ctl_data_t{
    uint8_t motorstatus;//1打开，2关闭，3停止
    uint8_t motorposition_percentage_abs; //电机执行百分比命令， 0%~100%，0xFF上报电机找不到百分比
    uint8_t direction;//0正向，1反向
    uint8_t handdrag_direction;//0无手拉启动，1有手拉启动
    O_CURTAIN_MORTOR_POSITION motorposition_precentage_rel; //字节0：位置加减，1加，0减   字节1：百分比0%~100%
    uint8_t dimming_limit;//无参数 （梦幻帘）
    uint8_t angel_precentage; //0~100 （梦幻帘） 
    uint8_t angel_direction;//0：向右转  （梦幻帘） 1：停止 2：向左转
}O_CURTAIN_CTL_DATA,*P_CURTAIN_CTL_DATA;


extern int sdk_model_curtain_ctl(ENUM_CURTAIN_CTL_TYPE type,uint16_t addr, P_CURTAIN_CTL_DATA data);








#endif

